package com.tree.backend.entity.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 生产效能记录表，记录各党组织对应的生产单元效能数据
 * </p>
 *
 * @author tree
 * @since 2025-10-15
 */
@Getter
@Setter
@ToString
@TableName("production_efficiency")
public class ProductionEfficiency implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 生产记录唯一标识
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 记录编码
     */
    private String recordCode;

    /**
     * 所属党组织编码
     */
    private String orgCode;

    /**
     * 记录日期
     */
    private LocalDate recordDate;

    /**
     * 记录月份，格式：YYYY-MM
     */
    private String recordMonth;

    /**
     * 产值（万元）
     */
    private BigDecimal productionValue;

    /**
     * 生产目标值
     */
    private BigDecimal productionTarget;

    /**
     * 产品合格率
     */
    private BigDecimal qualityRate;

    /**
     * 质量目标值
     */
    private BigDecimal qualityTarget;

    /**
     * 技术创新数量
     */
    private Integer innovationCount;

    /**
     * 成本降低率
     */
    private BigDecimal costReductionRate;

    /**
     * 成本节约金额（万元）
     */
    private BigDecimal costReductionAmount;

    /**
     * 安全事故数量
     */
    private Integer safetyIncidentCount;

    /**
     * 设备利用率
     */
    private BigDecimal equipmentUtilizationRate;

    /**
     * 劳动生产率
     */
    private BigDecimal laborProductivity;

    /**
     * 能耗指标
     */
    private BigDecimal energyConsumption;

    /**
     * 记录备注
     */
    private String recordRemark;

    /**
     * 数据来源
     */
    private String dataSource;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}
